package co.edu.javeriana.monopoly.server.eventos;

import co.edu.javeriana.monopoly.server.modelo.Casilla;
import co.edu.javeriana.monopoly.server.modelo.EstadoJugador;
import co.edu.javeriana.monopoly.server.modelo.Evento;
import co.edu.javeriana.monopoly.server.modelo.Jugada;
import co.edu.javeriana.monopoly.server.modelo.Jugador;
import co.edu.javeriana.monopoly.server.modelo.Monopoly;

import co.edu.javeriana.monopoly.server.modelo.MonopolyException;

import java.rmi.RemoteException;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

public class BancaRota extends Evento {
    public BancaRota(Object[] _objects) {
        super(_objects);
    }

    public void ejecutar() throws MonopolyException {
        Monopoly m;
        try {
            m = Monopoly.getMonopoly();
        } catch (RemoteException e) {
            throw new MonopolyException("Error al trae el juego",e);
        }
        
        Jugador jugador = (Jugador) m.getTablero().getJugadores().get(getJugada().getJugador().getId());
        
        Evento e = null;
        Jugada nextjugada = new Jugada();
        nextjugada.setJugador(jugador);
        nextjugada.setMonopoly(m);
        
        Casilla casillaactual = (Casilla)m.getTablero().getCasillas().get(new Integer(jugador.getCasilla().getPosicion()));
        casillaactual.quitarJugador(jugador);
        jugador.setEstado(EstadoJugador.BancaRota);
        
        int jugadoresenbancarota = 0;
        Enumeration ijugadores = m.getTablero().getJugadores().elements();
        while (ijugadores.hasMoreElements()){
            Jugador j = (Jugador)ijugadores.nextElement();
            if (j.getEstado() == EstadoJugador.BancaRota){
                jugadoresenbancarota++;
            }
        }
        
        if ( m.getJugadores()-jugadoresenbancarota == 1){
            e = new FinJuego(null);    
        }else{
            e = new FinTurno(null);
        }
        
        e.ejecutar();
        
    }
}
